
Ext.define('desarrollo.ArchivosForm', {
    extend: 'Ext.form.Panel',
    alias: 'widget.archivosform',
    requires: ['Ext.form.field.Text'],
    initComponent: function(){
        Ext.apply(this, {
            activeRecord: null,
            iconCls: 'icon-archivo',
            frame: true,
            defaultType: 'textfield',
            bodyPadding: 10,
            fieldDefaults: {
                anchor: '100%',
            },
            items: [{
                fieldLabel: 'Id',
                name: 'id',
                type: 'int',
                itemId: 'id',
                hidden: true,
            },{
                fieldLabel: 'IdItem',
                name: 'id_item',
                type: 'int',
                itemId: 'idItem',
                hidden: true,
            },{
                fieldLabel: '<b> Nombre Archivo</b>',
                name: 'nombre',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                itemId: 'nombre',
                hidden: true,
            },{
                fieldLabel: '<b> Tipo de Archivo</b>',
                name: 'tipo',
                hidden: true,
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
                itemId: 'tipo',
            }],
            dockedItems: [{
                xtype: 'toolbar',
                items: [{
                    iconCls: 'icon-adjuntar',
                    itemId: 'adjuntar',
                    text: '<b>Adjuntar</b>',
                    scope: this,
                    handler: this.onAdjuntar
                },{
                    iconCls: 'icon-delete',
                    itemId: 'delete',
                    hidden: true,
                    scope: this, 
                    text: '<b>Eliminar</b>',
                    scope: this,
                    handler: this.onDelete
                },{}]
            },{
				weight: 1,
                xtype: 'toolbar',
                dock: 'bottom',
                items: ['->', {
                    iconCls: 'icon-download',
                    itemId: 'download',
                    text: '<b>Descargar</b>',
                    scope: this,
                    hidden: true,
                    handler: this.onDownload
                }, {
                    iconCls: 'icon-reset',
                    text: '<b>Reset</b>',
                    scope: this,
                    itemId: 'reset',
                    //hidden: true,
                    handler: this.onReset
                }]
            }]
        });
        this.callParent();
    },

    setActiveRecord: function(record){
        this.activeRecord = record;
        if (record) {

            this.down('#delete').show();
            this.down('#download').show();
            this.down('#adjuntar').hide();
            this.down('#tipo').show();
            this.down('#nombre').show();
                       
            this.getForm().loadRecord(record);
        } else {

            this.down('#delete').hide();
            this.down('#download').hide();
            this.down('#tipo').hide();
            this.down('#nombre').hide();
            this.down('#adjuntar').show();
            this.down('#nombre').setValue("");
            this.down('#id').setValue("");
            this.down('#tipo').setValue("");
            
        }
    },

    onDelete: function(){
        var form = this.getForm();
                    form.submit({                        
                        url: 'eliminar_archivo_item',
                        params: {	submit: 'submit'	},
						method: "post",
						success: function(form, action) {
								this.fireEvent('refresh');
							    Ext.Msg.show({  
									title: '<p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Archivo eliminado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});
                        },
                        scope: this,                        
                        failure: function(form, action) {	
									
									Ext.Msg.show({  
										title: '<p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido eliminar el archivo', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });
    },
    
    onAdjuntar: function(){
			var form = this.getForm();
			this.fireEvent('fireAdjuntar', form.getValues(true));  
			
	}, 

    onDownload: function(){
			var form = this.getForm();
			
			idArchivo = extraer(form.getValues(true), 'id=', '&'); nombre = extraer(form.getValues(true), '&nombre=', '&tipo=');
			winDescargar = Ext.create('widget.window', {
					width: 400,
					iconCls: 'icon-download',
					title: 'DESCARGAR ARCHIVO ADJUNTO',
					closable: true,
					plain: true,
					layout: 'fit',
					items: [formPanel = Ext.widget('form', {
					frame: true,
					bodyPadding: 10,
					standardSubmit: true,
					fileUpload: true,
					defaults: {
						anchor: '100%'
					},
					items: [{
							xtype:'textfield',
							name: 'id',
							fieldLabel: 'Id',
							value: idArchivo,
							hidden: true,
					},{
							xtype:'textfield',
							name: 'nombre',
							fieldLabel: '<b>Nombre</b>',
							value: nombre,
							fieldStyle: 'background-color: transparent; border: none; background-image: none;',
					}],
					dockedItems: [{
						xtype: 'container',
						dock: 'bottom',
						layout: {
							type: 'hbox',
							align: 'middle'
						},
						items: [{
							xtype: 'button',
							formBind: true,
							disabled: true,
							text: '<b>Descargar</b>',
							width: 70,
							handler: function() {
								
								var form = this.up('form').getForm();
								form.submit({
									url: 'archivo_item'
									
								});
								win.hide();
							}
						}]
					}]
				}),{
						border: false
					}]
				});
				winDescargar.show();
	}, 
	
    onReset: function(){
        this.setActiveRecord(null);        
        this.fireEvent('clear');
    },
    
});
